#ifndef USERREGISTRATION_H
#define USERREGISTRATION_H

#include <QFrame>
#include <QTextEdit>
#include <QPushButton>
#include <QGridLayout>
#include <QLabel>
#include <QComboBox>
#include <QStringList>
#include <QSqlQuery>
#include <QMessageBox>
#include <QSqlRecord>
#include <QDebug>
#include <QTime>
#include <QDate>
#include <QPixmap>
#include <QBitmap>
#include <QApplication>
#include <stdlib.h>
#include <programsettings.h>
#include "lineedit.h"
#include "pushbutton.h"

class UserRegistration : public QWidget
{
    Q_OBJECT

    enum RandomType { Login, Password };
    ProgramSettings set;
    LineEdit *user_inicial; // ім'я, прізвище та побатькові
    LineEdit *house_number; // номер будинку/квартири
    LineEdit *home_phone; // домашній телефон
    LineEdit *mobile_phone; // мобільний телефон
    LineEdit *begin_service_date; // дата підключення
    LineEdit *login; // логин для підключення до мережі
    LineEdit *password; // пароль для підключення до мережі
    QTextEdit *notation; // замітка
    QComboBox *street_name; // назва вулиці
    QComboBox *service_type; // тип сервісу: IPTV|NET|IPTV+NET
    QComboBox *connection_type; // тип підключення: PON|Ethernet
    QComboBox *client_machine; // обладнання клієнта: ПК|Ноутбук
    QComboBox *sector_building; // номер під'їзду (якщо квартира): 0-5
    QComboBox *switchport_number; // номер порта, до якого підключений клієнт: 1-24
    PushButton *new_login_but, *new_passw_but, *add_but;
    QString __getRandomText(RandomType); // генерація випадкового тексту(8-15 символів)
    QString __getDateForDatabaseEntry(); // повертає дату для запису в базу данних
    void __configureProgram();
public:
    UserRegistration(QWidget *parent = 0);
public slots:
    void addUser();
    void setNewLogin();
    void setNewPassw();
    void inputingText(QString);
    void close();
};

#endif // USERREGISTRATION_H
